package entidades;
import util.*;
import java.util.List;
import java.util.LinkedList;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author JFM
 */
public class OrdenTrabajoView
	{
	public static String VISTA_COMPLETA = "ordenes_trabajo_view";
	public static String VISTA_CON_CICLOS = "ordenes_trabajo_plus_ciclos";
	public static String VISTA_UTIL = "ordenes_trabajo_util";
	
	
	public static List<OrdenTrabajo> buscar(String where) throws SQLException
		{
		List<OrdenTrabajo> lista;
		ResultSet result = MySQL.executeQuery("SELECT * FROM " + VISTA_UTIL + " WHERE " + where);
		lista = leer(VISTA_UTIL, result);
		return lista;
		}
	
	public static List<OrdenTrabajo> leer(String vista, ResultSet result) throws SQLException
		{
		List<OrdenTrabajo> res = new LinkedList();
		while(result.next())
			{
			OrdenTrabajo ot = new OrdenTrabajo(result);
			ot.setCicloNewlong(new CicloNewlong(result, "cn_"));
			ot.setCicloUteco(new CicloUteco(result, "cu_"));

			if(vista.compareTo(VISTA_UTIL)== 0 ||
			   vista.compareTo(VISTA_COMPLETA)== 0)
				{
				ot.setOrdenVenta(new OrdenVenta(result, "ov_"));
				ot.setEstado(new EstadoTrabajo(result, "et_"));
				ot.setFormato(new Formato(result, "fo_"));
				ot.getFormato().setDimensiones(new Dimensiones(result, "di_"));
				ot.getFormato().setLinea(new Linea(result, "li_"));
				
				OrdenVenta ov = ot.getOrdenVenta();
				ov.setLinea(new Linea(result, "li_"));
				ov.setLacaUv(new LacaUv(result, "lu_"));
				ov.setLogotipo(new Logotipo(result, "lo_"));
				ov.setManija(new Manija(result, "ma_"));
				ov.setTipoPapel(new TipoPapel(result, "tp_"));
				
				if(vista.compareTo(VISTA_COMPLETA)== 0)
					{
					ot.getCicloNewlong().setNewlong(new Newlong(result, "ne_"));
					ot.getCicloUteco().setUteco(new Uteco(result, "ut_"));
					ov.setEstado(new EstadoVenta(result, "ev_"));
					ov.setAltaUsuario(new Usuario(result, "us_"));
					}
				}
			
			res.add(ot);
			}
		result.getStatement().close();
		return res;
		}
	/*
	public static void main(String args[]) throws SQLException
		{
		boolean usarVista = false;
		
		for(int i=0; i<100; i++)
			{
			ResultSet result = MySQL.executeQuery("SELECT * FROM " + (usarVista? VISTA_UTIL : OrdenTrabajo.NOMBRE_TABLA));
			
			while(result.next())
				{
				OrdenTrabajo ot = new OrdenTrabajo(result);
				if(usarVista)
					{
					ot.setCicloNewlong(new CicloNewlong(result, "cn_"));
//					ot.getCicloNewlong().setNewlong(new Newlong(result, "ne_"));
					ot.setCicloUteco(new CicloUteco(result, "cu_"));
//					ot.getCicloUteco().setUteco(new Uteco(result, "ut_"));
					ot.setOrdenVenta(new OrdenVenta(result, "ov_"));
					ot.setEstado(new EstadoTrabajo(result, "et_"));
					ot.setFormato(new Formato(result, "fo_"));
					ot.getFormato().setDimensiones(new Dimensiones(result, "di_"));
					ot.getFormato().setLinea(new Linea(result, "li_"));
				
					OrdenVenta ov = ot.getOrdenVenta();
					ov.setLinea(new Linea(result, "li_"));
					ov.setLacaUv(new LacaUv(result, "lu_"));
					ov.setLogotipo(new Logotipo(result, "lo_"));
					ov.setManija(new Manija(result, "ma_"));
					ov.setTipoPapel(new TipoPapel(result, "tp_"));
//					ov.setEstado(new EstadoVenta(result, "ev_"));
//					ov.setAltaUsuario(new Usuario(result, "us_"));			
					}

				OrdenVenta ov = ot.getOrdenVenta();
				System.out.println(
					ot.getId() + ": " + 
					ot.getEstado() + " - " +
					ot.getFormato() + " - " +
					ot.getCicloNewlong() + " - " +
					ot.getCicloNewlong().getNewlong() + " - " +
					ot.getCicloUteco() + " - " +
					ot.getCicloUteco().getUteco() + " - " +
					ov.getEstado() + " - " +
					ov.getLinea() + " - " + 
					ov.getLacaUv() + " - " + 
					ov.getLogotipo() + " - " +
					ov.getManija() + " - " + 
					ov.getTipoPapel() + " - " + 
					ov.getAltaUsuario());
				}
			}		
		}
	*/
	}
